package com.edu.buservice.biz;

import com.edu.buservice.biz.model.Request.QueryUserRequest;
import com.edu.buservice.biz.model.Request.UpdateUserRequest;
import com.edu.buservice.biz.model.Request.UserRequest;
import com.edu.buservice.biz.model.Response.LabelTenantResponse;
import com.edu.buservice.biz.model.dto.UpdateUserInfoDTO;
import com.edu.buservice.dal.model.SysUsers;
import com.edu.buservice.facade.model.response.BaseUserInfoDTO;
import com.edu.buservice.util.model.R;
import com.edu.buservice.util.model.UserInfoDTO;

import java.util.List;

public interface UserManger {

	/**
	* @Description: 根据手机号查询用户信息
	* @Param: phone
	* @return: UserInfoDTO
	*/
	List<SysUsers> getUserInfoByPhone(String phone);


	/**
	* @Description: 根据用户id或者手机号查询用户信息，无租户维度
	* @Param: userId
	* @Param: phone
	* @return: UserInfoDTO
	*/
	List<SysUsers> getUserInfoWithoutTenant(String userId, String phone);


	/**
	* @Description: 根据用户id查询用户信息
	* @Param: userId
	* @return: UserInfoDTO
	*/
	UserInfoDTO getUserInfoById(String userId);


	/**
	* @Description: 新增用户
	* @Param: userRequest
	*/
	R<String> addUser(UserRequest userRequest);


	/**
	* @Description: 根据手机号查询用户信息
	* @Param: phone
	* @return: UserInfoDTO
	*/
	R<List<LabelTenantResponse>> queryByTenantLabel(String phone);

	/**
	 * @Description: 根据UserId批量查询用户信息
	 * @Param: phone
	 * @Param: phone
	 * @return: UserInfoDTO
	 */
	List<BaseUserInfoDTO> queryUserByIds(List<String> userIds);


	/*
	* @author 范铁凝
	* @date 2025/4/14
	* 根据条件查询用户信息
	*/
	R<List<BaseUserInfoDTO>> queryUserByCondition(QueryUserRequest queryUserRequest);

	/*
	* @author 范铁凝
	* @date 2025/4/15
	* 更新用户信息
	*/
	R<Boolean> updateUser(UpdateUserInfoDTO updateUserInfoDTO);



	/*
	* @author 范铁凝
	* @date 2025/4/17
	* 更新用户信息
	*/
	R<Boolean> updateUserInfo(UpdateUserRequest updateUserRequest);




}
